home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CHIP_CD_2004-11.iso / software / dragon / dup500-setup.exe / {app} / utils / hrf_30_spec.txt < prev   
Encoding:
Text File  |  2003-07-11  |  6.2 KB  |  190 lines

  1. HyperRipper File Format (HRF) v3.0 for HyperRipper v5.0                Freeware
  2. (c)Copyright 1999-2002 Alex Devilliers                       rel.A / 14-09-2002
  3. ===============================================================================
  4.  
  5.   What is HyperRipper File Format ?
  6.   ---------------------------------
  7.   
  8. This file format is the format used by the Dragon UnPACKer's HyperRipper to
  9. store Offsets/Size/Filenames of found data.
  10.  
  11. Ex: If the HyperRipper found a RIFF/WAVE 'file' into Example.Dat at offset 32
  12.     and size of 32560.
  13.     The .HRF file will store this offset/size in order that the user will be
  14.     able to reopen this file (Example.Dat) in Dragon UnPACKer without having to
  15.     redo the HyperRipper search by opening the .hrf file instead.
  16.  
  17. Here is version history for this file format:
  18. HRF version 0    First version ever
  19. HRF version 1    Introduced in Dragon UnPACKer v4.00.38 Beta
  20. HRF version 2    Introduced in Dragon UnPACKer v4.13.74
  21. HRF version 3.0  Introduced in Dragon UnPACKer v5.0.0 Beta 2
  22.  
  23. Dragon UnPACKer Support for different versions:
  24. (Full = Read/Write support    - = Unsupported)
  25. Version of DUP                        v0     v1     v2     v3.0
  26. Dragon UnPACKer v4.00.38 Beta         Full   Full   -      -
  27. Dragon UnPACKer v4.13.74              Full   Full   Full   -
  28. Dragon UnPACKer v5.0.0 Beta 1         Read   Read   Read   -
  29. Dragon UnPACKer v5.0.0 Beta 2         Read   Full   Full   Full
  30.  
  31. If you need information about the 3 first versions (0, 1 and 2) you can get the
  32. specification from the Developer section on the Elbereth Zone homepage:
  33. http://www.elberethzone.net/
  34.  
  35. Version 3.0 was needed because the HyperRipper introduced in DUP5 is a
  36. completly new code based on a new approach (plugin based). Because of that the
  37. integer based way of identifiyng files was no more usuable.
  38.  
  39.  
  40.   Some information:
  41.   -----------------
  42.   
  43.   Please note that this file format uses 64bits integers to store offset and
  44. sizes in order to support really big files.
  45.   
  46.       byte is a 1 Byte long unsigned value (0 to 255)
  47.   shortint is a 2 Bytes long signed value (-32k to 32k)
  48.    integer is a 4 Bytes long signed value (-2M to 2M)
  49.      int64 is a 8 Bytes long signed value (really huge)
  50.  
  51.  
  52.   Global file format:
  53.   -------------------
  54.  
  55.   Version 3.0 of the file format is organized as follow:
  56.   
  57.   Header
  58.   Information chunk (optional)
  59.   Index of entries
  60.   
  61.  
  62.   Header of the file:
  63.   -------------------
  64.   
  65.   Offset  Size  Description
  66.    0000      5  Magic ID always 'HRFi'+#26
  67.    0005      1  Major version (Here 3)
  68.    0006      1  Minor version (Here 0)
  69.    0007      4  Program version used to create the file [should at least
  70.                 be 50040 (v5.0) if program ID is 1 (HyperRipper)]
  71.                 Check Developer page on http://www.elberethzone.net to see how
  72.                 the version can be decoded.
  73.    000B      1  Program ID used to create the file
  74.                 Only valid values is 1 for HyperRipper and 0 for Anonymous.
  75.                 If your program makes HRF v3 files you should ask a Program ID
  76.                 value (or take a new one yourself and send the value to Alex
  77.                 Devilliers).
  78.    000C      1  Attributes:
  79.                 0x0001 Information chunk is present
  80.                 All others bits must be unset (in v3.0)
  81.    000D    255  Filename of the companion file (where data is to be read)
  82.    010C      8  Size in bytes of the companion file (used for verification)
  83.    0114      4  Number of entries in the index
  84.    0118      4  Offset to index of files
  85.   
  86.   Delphi record:
  87.   
  88.   type HRF3_Header = packed record
  89.      ID: array[1..5] of char;
  90.      MajorVersion: byte;
  91.      MinorVersion: byte;
  92.      PrgVersion: integer;
  93.      PrgID: byte;
  94.      Attribs: byte;
  95.      Filename: array[1..255] of char;
  96.      Filesize: int64;
  97.      NumEntries: integer;
  98.      OffsetIndex: integer;
  99.   end;
  100.   
  101.   
  102.   Information chunk:
  103.   ------------------
  104.  
  105.   Relative
  106.     Offset  Size  Description
  107.      0000      1  Type of information chunk
  108.                   Should be 0
  109.      0001     64  Author of the file (Char array 0 terminated)
  110.      0041    128  URL of the author (Char array 0 terminated)
  111.      00C1     64  Title of the file (Char array 0 terminated)
  112.   
  113.   Delphi record:
  114.   
  115.   type HRF3_Info = packed record
  116.      InfoType: byte;
  117.      Author: array[1..64] of char;
  118.      URL: array[1..128] of char;
  119.      Title: array[1..64] of char;
  120.   end;
  121.   
  122.  
  123.   Index of entries:
  124.   -----------------
  125.  
  126.   The following structure is repeated NumEntries times (see Header):
  127.  
  128.   Relative
  129.     Offset  Size  Description
  130.      0000    255  Full filename of the entry (can have directory with \ path
  131.                   separator, ex: sounds\test00.wav)
  132.                   0 terminated
  133.      00FF      4  General Type of the file (see types below)
  134.      0107      8  Offset in companion file of this entry
  135.      010B      8  Size in companion file of this entry
  136.   
  137.   Delphi record:
  138.   
  139.   type HRF3_Index = packed record
  140.      Filename: array[1..255] of char;
  141.      GenType: integer;
  142.      Offset: int64;
  143.      Size: int64;
  144.   end;
  145.  
  146.  
  147.   General File Types:
  148.   -------------------
  149.   
  150.   Value           Description
  151.       0           Unknown (this should only be used if you don't check type of
  152.                   file)
  153.       1           Audio file type
  154.       2           Video file type
  155.       3           Image file type
  156.    9999           Other file type (this should be the value if none of the
  157.                   others defined values correspond)
  158.  
  159.   Delphi constants declaration:
  160.       
  161.   const
  162.       HR_TYPE_UNKNOWN = 0;
  163.       HR_TYPE_AUDIO = 1;
  164.       HR_TYPE_VIDEO = 2;
  165.       HR_TYPE_IMAGE = 3;
  166.       HR_TYPE_OTHER = 9999;
  167.  
  168.  
  169.   Contact
  170.   -------
  171.  
  172. If there is something I don't explained well please contact me.
  173. If there is something wrong in MY specs of MY format please ask also!! :)
  174.  
  175. See Developer section on Elbereth Zone internet page at:
  176. http://www.elberethzone.net
  177.  
  178. You can reach Alex Devilliers:
  179.  
  180.  By E-Mail: support@dragonunpacker.com
  181.     By ICQ: 1535372 (Elbereth)
  182.  
  183.  
  184.   What's new?
  185.   -----------
  186.  
  187. Release A: First version ever (dropped all infos about v0, v1 and v2).
  188.  
  189. ===============================================================================
  190.